/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package minimundo.comercio;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import minimundo.geografia.Endereco;
import minimundo.social.Pessoa;

/**
 *
 * @author Valdirene
 */
public class Banco {
    private Empresa proprietario;
    private Endereco endereco;
    private Pessoa gerente;
    private Date horarioAbertura;
    private Date horarioFechamento;
    private double reservaMonetaria;
    private List<Pessoa> clientes = new ArrayList();

    /**
     * @return Retorna a empresa proprietária do banco
     */
    public Empresa getProprietario() {
        return proprietario;
    }

    /**
     * @param Define a empresa proprietária do banco
     */
    public void setProprietario(Empresa proprietario) {
        this.proprietario = proprietario;
    }

    /**
     * @return Retorna o endereço do banco
     */
    public Endereco getEndereco() {
        return endereco;
    }

    /**
     * @param Define o endereço do banco
     */
    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }
    /**
     * @return Retorna o gerente do banco
     */
    public Pessoa getGerente() {
        return gerente;
    }

    /**
     * @param Define o gerente do banco
     */
    public void setGerente(Pessoa gerente) {
        this.gerente = gerente;
    }

    /**
     * @return Retorna o horario em que o banco abre
     */
    public Date getHorarioAbertura() {
        return horarioAbertura;
    }

    /**
     * @param Define o horário em que o banco abre
     */
    public void setHorarioAbertura(Date horarioAbertura) {
        this.horarioAbertura = horarioAbertura;
    }

    /**
     * @return Retorna o horario em que o banco fecha
     */
    public Date getHorarioFechamento() {
        return horarioFechamento;
    }

    /**
     * @param Define o horário em que o banco fecha
     */
    public void setHorarioFechamento(Date horarioFechamento) {
        this.horarioFechamento = horarioFechamento;
    }

    /**
     * @return Retorna a reserva monetária do banco
     */
    public double getReservaMonetaria() {
        return reservaMonetaria;
    }

    /**
     * @param Define a reserva monetária do banco
     */
    public void setReservaMonetaria(double reservaMonetaria) {
        this.reservaMonetaria = reservaMonetaria;
    }

    /**
     * @return Retorna um lista com todos os clientes do banco
     */
    public List<Pessoa> getClientes() {
        return clientes;
    }

    /**
     * @param Adiciona um  cliente na lista de clientes do banco
     */
    public void setClientes(Pessoa cliente) {
        if(!clientes.contains(cliente))
        {
            clientes.add(cliente);
        }
    }

}
